#!/bin/bash


##谷歌二次验证安装
echo "部分系统需要关闭selinux才能安装谷歌验证"
apt install libpam-google-authenticator -y  ##安装谷歌二次验证
echo "谷歌二次验证已安装，现在进行配置，注意仅对当前账户有效"
google-authenticator    ##除了一个up to 4 minutes 选择n，其余全部选y每次生成的令牌30s生成一次，最高允许存在误差4分钟， for a time skew of up to 4 minutes between client and server

##谷歌二次验证安装并配置完成
while true;do
##stty -icanon min 0 time 10 ##十秒后
echo -n "谷歌验证安装并配置完成，即将开始下一个任务，谷歌的验证码是否已经保存(yes or no)?"
read Arg
case $Arg in
Y|y|YES|yes)
  break;;
N|n|NO|no)
  exit;;
"")  #Autocontinue
  break;;
esac
done
##脚本继续执行

##修改ssh安全验证使用密码+谷歌二次验证，并且可使用root远程登录
cat auth required pam_google_authenticator.so >> /etc/pam.d/sshd    ##让ssh登录加入谷歌验证，"cat >>" 在文件末尾加入文本不覆盖，"cat > "会覆盖文件原内容


sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config    ##允许root账号可使用ssh登录

sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config    ##修改ssh使用质疑应答，否则直接被拒绝

service ssh restart ##重启ssh服务，应用配置

##安装fail2ban
apt install fail2ban -y ##fail2ban-client status sshd ##可以查询被ban的信息